I.

CDA Studio: CDA 문서를 생성하기 위한 통합 도구의 개발

CDA Studio: Development of an Integrated Tool for Generating CDA Documents

Myeongseon Choe*, Sungwon Jung*, Jinwook Choi M.D., PhD†.

* Program, Biomedical Engineering Major, Graduate School of Seoul National University, Seoul 110-799, cemes78@snu.ac.kr

†Department of Biomedical Engineering, College of Medicine, Seoul National University, Seoul 110-799

Abstract: The Clinical Document Architecture(CDA) defines a three-level document architecture for document exchange. We developed an integrated tool (CDA Studio) for authoring and generating the CDA documents. It provides easy-to-use interface for editing CDA templates and connecting legacy information system. In this paper we describe the architectures and functions of CDA studio and its three components: the designer for authoring a CDA template, the mapper for mapping the information of clinical database to XML elements, and the generator for generating CDA documents automatically. In addition to these components, we developed a module (Entry Mapper) for generating CDA level 3 Documents from CDA level 2 documents inserting the CDA entry blocks into the sections of CDA level 2. The Entry Mapper consists of Text Analyzer, Encoder, and Code Mapper. We improved the CDA Studio by integrating this Entry Mapper into main frame.

Keyword: clinical document architecture, CDA entry block, extensible markup language, discharge summary

배 경

Health Level 7 (HL7)은 의료기관에서 사용되는 메시지에 관한 표준을 정하는 기관으로서, 임상 문서의 표현에 관한 표준인 Clinical Document Architecture (CDA) 또한 개발하고 있다[1].

CDA는 임상 문서의 공유와 전송에 있어 서로 다른 어플리케이션 또는 서로 다른 시스템 간의 상호 호환을 위해 Extensible Markup Language(XML)로 작성된 문서로서 그 표현 정도에 따라 확장 수준을 달리하는 세 개의 구조(Level 1, 2, 3)를 가질 수가 있다. CDA Level 3 문서의 경우 그 표현이 가장 풍부하여 컴퓨터 등 전산 시스템에서 인식 할 수 있는 표준 용어 코드 또한 포함하고 있다[2].

이러한 구조적이고 계층적인 CDA 문서는 Altova의 XMLSPY[3] 등과 같은 기존의 XML 저작 도구를 이용하여 작성할 수가 있다. 그러나 이들 XML 저작 도구들은 주로 템플릿 수준의 XML문서를 작성하는 데에 사용되며, 실제 데이터나 정보를 해당 문서의 요소(element)에 입력하기 위해서는 추가적인 데이터 입력 시스템이 필요하다. 즉 기존의 병원 정보 시스템(HIS: Hospotal Information System) 데이터베이스로부터 환자 데이터를 가져와 이들을 CDA 문서로 생성해야하는 경우에는 이들 XML 저작 도구 이외에 데이터베이스의 테이블 및 필드 정보와 CDA 문서 요소를 연결 할 수 있는 어플리케이션이 추가적으로 구축되어야 한다. 특히 CDA Level 3 문서를 작성하기 위해서는 이들 도구 이외에도 SNOMED와 같은 표준 의학 용어를 연동시킬 수 있는 시스템이 필요하다.

본 연구에서는 병원 정보 시스템의 데이터베이스에 저장되어 있는 환자의 의료관련 기록을 자동으로 CDA 문서로 생성할 수 있는 어플리케이션인 CDA Studio와 구성 요소를 소개하며, 개발 방법과 함께 CDA Level3 문서의 자동 생성 가능성을 보여준다.

II. 설 계 및 방 법

CDA Studio는 세 개의 컴포넌트(component)로 구성된 어플리케이션으로서 모든 컴포넌트는 Microsoft .NET 플랫폼에서 각각 독립적으로 개발되었다.

1. 구성요소 및 설계

CDA Studio는 CDA Designer, DB Mapper, CDA Generator 등 세 개의 컴포넌트로 구성되어 있다.

Figure  Components of CDA Studio

CDA Designer는 CDA 스키마(schema) 파일로부터 CDA 문서를 구성할 수 있는 문서 요소(element) 정보를 읽어와 이들을 이용하여 CDA 문서 템플릿(E-Template) 파일을 작성하는 컴포넌트로서 XML 문서 생성기와 XML 에디터(editor)로 구성되어 있다. XML 문서 생성기는 W3C의 XML 분석 기술을 토대로 자바(JAVA) 환경에서 개발되었으며 사용자 인터페이스(UI: User Interface) 없이 단순히 해당 프로세스의 실행만으로 선택된 CDA schema 파일을 분석하여 XML 문서로 생성하게 함으로써 .NET 환경에서 개발된 CDA Designer와의 통합을 가능하게 하였다.

Figure  Display of CDA Designer. XML elements of left panel are results of parsing CDA Schema file and these elements are moved to right panel to make CDA template(E-template).

DB Mapper는 기존의 XML 저작도구와 차별되는 기능이라 할 수 있는 데이터베이스와 CDA 문서 요소의 매핑(mapping)을 담당하는 컴포넌트로서, 사용할 데이터베이스로의 접속을 시도하고 연결되어 있는 데이터베이스의 테이블과 필드 명, 그리고 각 테이블의 구조를 탐색할 수 있는 기능을 제공하도록 하였으며 트리구조로 표현되는 CDA 문서 템플릿(E-Template)의 각 요소에 마우스의 조작으로 적당한 필드 명을 지정할 수 있도록 하였다. 또한 다양한 시스템 환경에서 사용될 수 있도록 Oracle 9i, Microsoft SQL Server, Microsoft Access 등 대표적인 상용 데이터베이스들과의 연동이 가능하도록 하였다. DB Mapper는 최종적으로 MAP 파일을 생성하게 되며 이 파일에는 매핑 정보를 요소(element)의 값으로 하는 CDA 문서 구조 이외에도 데이터베이스와의 연결 정보가 포함 되어 있다.

Figure  Architecture of CDA Generator

CDA Generator는 DB Mapper에서 작성된 MAP파일을 분석하여 데이터베이스와 연결을 시도하고, CDA 각 요소에 할당되어 있는 테이블과 필드 명을 실제 데이터베이스의 값으로 대체함으로써 최종적으로 CDA 문서를 생성하게 된다. DB Mapper에서 지원하는 데이터베이스의 종류를 모두 지원하며 다양한 생성 조건을 설정할 수 있도록 하여 데이터베이스의 모든 레코드를 CDA 문서로 생성할 수 있을 뿐만 아니라 요청된 CDA 문서에 대해서 환자 이름이나 ID, 또는 담당 의사 이름 등을 이용하여 선택적으로 생성할 수 있도록 하였다.

이러한 세 개의 컴포넌트로 이루어진 CDA Studio에 의해 일차적으로 생성된 CDA문서는 CDA Level2 문서로서 시스템이 인식할 수 있는 코드(code)로 이루어진 CDA Entry Block은 생략되어 있다. 이에 우리는 CDA Studio에 의해 생성된 CDA Level2 문서를 분석하여 CDA Level3 문서를 자동적으로 생성할 수 있는 Entry Mapper 컴포넌트를 추가적으로 개발하였다.

Figure  Architecture of Entry Mapper

Entry Mapper는 CDA level2 문서 중 <section>의 <text>에 해당하는 내용을 분석하여 최소 정보 단위로 분류하는 Text Analyzer와 각 정보를 CDA Entry Block의 구조로 인코딩(encoding)하는 Encoder, 그리고 특정 용어에 대해서 표준 의학 용어 코드로 변환해 주는 Code Mapper로 구성 되어 있다. Entry Mapper는 CDA Generator의 한 구성 요소로 개발이 되었으며, 일련의 텍스트를 분석하여 Entry Block을 생성하는 방식임을 감안하여 ‘현 병력’이나 ‘소견’ 등 기술(descriptive)적인 텍스트보다는 ‘진단명(doagnosis)', ‘처방(medication)', '문제목록(problem list)’, '수술명(operation)’ 등 대체적으로 명확한 정보 단위로 표현되는 주요 섹션(section)에 대해서만 CDA Entry Block을 생성하도록 하였다.

2. 개발방법

CDA Designer의 XML 문서 생성기를 제외한 CDA Studio의 모든 컴포넌트는 Microsoft의 .NET 플랫폼[4]에서 C# 프로그래밍 언어로 개발되었으며 클래스 라이브러리 형태로 만들어져 재사용과 참조가 가능하도록 하였다. 따라서 CDA Studio와 비슷한 기능을 하는 또 다른 어플리케이션을 개발할 경우 동적 라이브러리 형태인 CDA Studio의 각 컴포넌트를 참조하여 컨트롤과 주요 메소드(method)를 그대로 구현할 수 있도록 하였다.

CDA Studio는 범용적인 사용을 위하여 기본적으로 MS-SQL, MS Access(*.mdb), Oracle (BFILE, LOB 제외) 등 다양한 상업용 데이터베이스에 직접적인 연결이 가능한 .NET 플랫폼의 OLE DB Provider를 사용하였으며, BFILE, LOB 및 REF CURSOR 등 특별한 데이터 형식을 사용하는 Oracle 데이터베이스의 경우에는 ‘.NET Framework Data Provider for Oracle (OracleClient)’ 을 사용한 접속이 우선적으로 시도되도록 개발하였다.

III. 결 과

우리는 CDA Studio를 사용하여 서울대병원의 2003년 ‘퇴원요약’과 ‘수술기록’ 데이터를 CDA 문서로 생성해 보았다. 이들 데이터는 환자의 기본 인적 사항이 제거 또는 임의 수정 된 형태로 제공받은 것으로서, 우리는 이를 Header View와 Body View로 이루어진 관계형 데이터베이스로 재설계하였다.

Figure  View Table

Figure 1과 같이 CDA Designer를 사용하여 퇴원요약지와 수술기록지의 CDA 템플릿인 E-Template을 각각 작성한 후, 이를 DB mapper에서 로드(load)하여 Figure 6과 같이 각 요소의 값을 현재 연결되어 있는 데이터베이스의 테이블과 필드 명으로 매핑(mapping)한다.

Figure  Diaplay of DB Mapper

CDA Mapper에서의 작업이 완성되면 그 결과물인 MAP파일을 이용하여 CDA Generator는 데이터베이스의 각 레코드를 최종 결과물인 CDA 문서로 생성하게 된다. 초당 10건의 문서를 생성하며 생성된 문서는 사용자가 지정한 로컬 폴더에 저장이 된다. CDA Generator에서 생성된 문서는 CDA Studio에 내장된 뷰어(viewer)를 통해 그 내용을 확인할 수도 있다.

Figure  Generating of CDA documents

Figure  Display of CDA Document Viewer

생성된 CDA level2 문서는 CDA Generator의 한 모듈로 통합되어 있는 Entry Mapper 컨트롤을 이용하여 CDA Level3 문서로 재생성할 수 있다.

Figure  Example of one section in a CDA Level3 Document

CDA Level3 문서가 생성되는 데에 소요되는 시간은 Entry Mapper에 자체 내장되어 있는 로컬 용어 데이터베이스 파일(MS Access파일)로부터 특정 용어에 대한 코드를 검색하는 데에 걸리는 시간에 의해 결정되므로 CDA Level2 문서의 생성시간과는 상당한 차이를 보인다.

IV. 고 찰

CDA Designer는 HL7의 CDA Schema를 이용하여 CDA 문서에 사용 가능한 XML 요소를 먼저 생성한 뒤 작업하게 되므로 CDA Schema의 내용이 바뀌어도 CDA Document를 생성하는 데에 지속적으로 사용 가능하며 트리뷰어와 Drag&Drop과 같은 직관적이고 편리한 UI를 제공함으로써 CDA 문서 디자인을 효과적으로 전달할 수 있다. 또한 DB Mapper와 CDA Generator는 다양한 데이터베이스와의 연동이 가능하며 선택적인 CDA 문서 생성을 가능하게 해 준다. 그리고 Entry Mapper는 자동적으로 CDA Level3 문서를 자동적으로 생성함으로써 사용자의 작업 능률을 향상 시킬 수 있다.

그러나 CDA Studio는 Microsoft의 .NET 플랫폼이 설치되어야 사용 가능하고 사용하기에 앞서 제한된 형태의 데이터베이스의 설계 및 구축이 되어 있어야 하며, 모든 섹션에 대하여 CDA Entry Block을 생성하는 것이 아니라는 점에서 아직 개선되어야 할 부분이 많다. 계속해서 진행될 연구에서는 보다 범용적인 사용이 가능하도록 연동 가능한 데이터베이스의 종류를 다양화하고, 사전(dictionary) 및 유사어(synonym) 정보 등의 활용이 가능한 Entry Mapper를 개발하기 위한  여러 방법들이 연구될 것이다.

V. 결 론

의료문서를 CDA가 아닌 구조로 기록하거나 또는 단순히 의료 데이터를 관계형 데이터베이스에 저장하고 있는 의료기관에서 CDA가 의료문서 전송의 표준이 되는 시스템을 개발해야 한다면 이들 의료 데이터를 CDA문서의 형태로 변환, 생성하는 작업이 반드시 요구될 것이다. CDA Studio는 기존의 의료기관에서 보관하고 있는 관계형 데이터베이스 기반의 의료 데이터로부터 CDA 문서를 생성하는 데에 사용되는 도구로서, CDA 문서 구조를 정의하는 작업과 데이터베이스의 각 필드 명을 CDA 문서의 각 요소에 매핑하는 작업, 그리고 매핑된 정보를 이용하여 다량의 CDA 문서를 생성하는 작업 모두를 가능하게 해주는 도구이다. 본 연구에서는 이러한 기능의 CDA Studio 개발과 관련하여 각 컴포넌트의 설계 및 개발 방식을 소개하고, CDA Entry Block의 자동 생성 가능성을 제시하고 있다.

참고문헌

1. Robert H. Dolin, Liora Alschuler, Calvin Beebe, Paul V. Biron, Sandra Lee Boyer, Daniel Essin, Elliot Kimber, Tom Lincoln, and John E. Mattison, The HL7 Clinical Document Architecture, J Am Med Inform Assoc 2001;8(6):552-569

2. Robert H. Dolin, Liora Alschuler, Sandy Boyer, Calvin Beebe, Fred M. Behlen, Paul V. Biron, and Amnon Shabo, HL7 Clinical Document Architecture, Release 2, J. Am. Med. Inform. Assoc., PrePrint published October 12, 2005.

3. Altova XMLSpy 2005, http://www.altova.com/products_ide.html.

4. Dr. Meg Murray, "Move to component based architectures: introducing Microsoft's .NET platform into the college classroom", Journal of Computing Sciences in Colleges 2004;19(3):301-310.